﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using DBUtils;
/// <summary>
/// 该页面对应着功能说明书的部门汇总页。
/// </summary>
public partial class Attendance_Summary : System.Web.UI.Page
{
    DataSet dsResult;
    DataSet dsDept;
    int iDeptID;
    /// <summary>
    /// 网页初始化时执行该方法。
    /// 设置界面控件的显示方式和“开始时间”和“结束时间”文本框中的默认显示内容，
    /// 并获取登录者的员工编号信息。
    /// 该过程调用 Employee.GetEmployeeInfo(iEmpID, emp) 函数，从数据库中获取员工的其他信息。
    /// 该过程调用 Employee.GetCEOInfo(iCEOID) 函数，从数据库中获取总经理的员工编号。
    /// 该过程调用 CheckLvReq.GetDeptList(dsDept) 函数，从数据库中获取所有部门的列表。
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Page_Load(object sender, System.EventArgs e)
    {
        if (!IsPostBack)
        {
            txtStartTime.Text = "2000-01-01";
            txtEndTime.Text = "2010-01-01";
            int ok = CheckLvReq.GetDeptList(ref dsDept);
            cmbDeptList.DataSource = dsDept.Tables[0];
            cmbDeptList.DataTextField = dsDept.Tables[0].Columns[1].ToString();
            cmbDeptList.DataValueField = dsDept.Tables[0].Columns[0].ToString();
            cmbDeptList.DataBind();

            int ceo = 0;
            if (Employee.GetCEOInfo(ref ceo) == 1) //判断当前用户是否是CEO
            {
                if (ceo == Convert.ToInt32(Session["EmployeeID"]))//如果当前登陆的是CEO
                {
                    Panel1.Visible = true;
                }
                else
                {
                    Panel1.Visible = false;
                    Employee emp = new Employee();
                    ok = Employee.GetEmployeeInfo(Convert.ToInt32(Session["EmployeeID"]), emp);
                    cmbDeptList.SelectedValue = emp.DeptID.ToString();
                    iDeptID = Convert.ToInt32(cmbDeptList.SelectedValue);
                }
            }
        }
    }

    /// <summary>
    /// 当用户单击 DataGrid 中的“详细情况”链接时，该方法显示考勤详细信息页面。
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void grdResult_RowCommand(object sender, GridViewCommandEventArgs e)
    {

    }

    /// <summary>
    /// 当用户单击“显示结果”按钮时，该方法将检索数据库并以 DataSet 的形式显示查询结果。
    /// 该过程调用 Attendance.DeptSummary(iDeptID, txtStartTime.Text.Trim, txtEndTime.Text.Trim, dsResult) 函数，
    /// 在数据库中检索该部门在该时间段内的考勤汇总信息。
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSearch_Click(object sender, System.EventArgs e)
    {
        iDeptID = Convert.ToInt32(cmbDeptList.SelectedValue);
        if (Attendance.DeptSummary(iDeptID, txtStartTime.Text.Trim(), txtEndTime.Text.Trim(),ref dsResult) == 1)
        {
            grdResult.DataSource = dsResult.Tables[0];
            grdResult.DataBind();
            grdResult.Visible = true;
        }
    }

    /// <summary>
    /// 当用户更改选中部门时，该方法更新已保存的部门编号。
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void cmbDeptList_SelectedIndexChanged(object sender, System.EventArgs e)
    {
        iDeptID = Convert.ToInt32(cmbDeptList.SelectedValue);
    }
}
